package com.wman.learn.Class

/**
 * @ProjectName: wman
 * @Package: com.wman.`class`
 * @ClassName: Kotlin10
 * @Description: 访问修饰符  伴生对象  单例
 * @Author: wman
 * @CreateDate: 2019/11/21 17:46
 * @UpdateUser: 更新者
 * @UpdateDate: 2019/11/21 17:46
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */

/**
 * internal 模块访问权限   项目结构化时使用
 * companion object 伴生对象，kotlin没有类的静态方法
 * Kotlin10Utils.Companion  Java中的调用方式
 */
class Kotlin10Utils {
    companion object {
        fun isEmpty(str: String?): Boolean {
            return "" == str
        }
    }
}

/**
 * 单例
 */
class Kotlin10Single private constructor() {
    companion object {
        fun get(): Kotlin10Single {
            return Holder.instance
        }
    }

    private object Holder {
        val instance = Kotlin10Single()
    }
}

fun vars(vararg v: Int): Unit {
    for (item in v) {
        println(item);
    }
}

fun main(args: Array<String>) {
    Kotlin10Utils.isEmpty("")
    Kotlin10Single.get()

    vars(1, 2, 3, 4, 5, 6, 7, 8, 9)
}